package com.ruoyi.business.domain;

import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 产品信息对象 jt_product
 * 
 * @author Alan Zhang
 * @date 2025-05-22
 */
public class JtProduct extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 产品id */
    private Long productId;

    /** 产品名称 */
    @Excel(name = "产品名称", prompt = "*必填")
    private String productName;

    /** 产品编码 */
    @Excel(name = "产品编码", prompt = "*必填")
    private String productCode;

    /** 款式编码 */
    @Excel(name = "款式编码", prompt = "*必填")
    private String styleNo;
    //虚拟字段
    private Integer quantity;

    /** 分类ID */
    private Long categoryId;

    //虚拟字段
    @Excel(name = "分类")
    private String categoryName;
    private String categoryNameZh;
    private String categoryNameEn;
    private String categoryNameAr;

    /** 商品属性 1成品 2半成品 3原材料 */
    @Excel(name = "商品属性",dictType = "jt_product_attributes", prompt = "请对应系统类型", comboReadDict = true)
    private Integer attributes;

    /** 重量(KG) */
    @Excel(name = "重量(KG)")
    private Double weight;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 图片路径 */
    @Excel(name = "图片路径")
    private String imageUrl;

    /** 缩略图片路径 */
    @Excel(name = "缩略图片路径", type = Excel.Type.EXPORT)
    private String thumbnailUrl;

    @Excel(name = "成本")
    private BigDecimal cost;

    /** 采购价（元） */
    @Excel(name = "采购价")
    private BigDecimal purchasePrice;

    /** 规格 */
    @Excel(name = "规格")
    private String spec;

    /** 原产地 */
    @Excel(name = "原产地")
    private String countryOfOrigin;

    /** 供应商ID */
    private Long supplierId;

    /** 供应商 */
    @Excel(name = "供应商")
    private String supplierName;

    /** 销量 */
    @Excel(name = "销量")
    private Long soldQty;

    /** 库存 */
    @Excel(name = "库存")
    private Long stock;

    /** 状态（0正常 1停用） */
    @Excel(name = "状态",dictType = "sys_normal_disable", prompt = "请对应系统类型", comboReadDict = true)
    private Integer status;

    public void setProductId(Long productId) 
    {
        this.productId = productId;
    }

    public Long getProductId() 
    {
        return productId;
    }

    public void setProductName(String productName) 
    {
        this.productName = productName;
    }

    public String getProductName() 
    {
        return productName;
    }

    public void setProductCode(String productCode) 
    {
        this.productCode = productCode;
    }

    public String getProductCode() 
    {
        return productCode;
    }

    public void setStyleNo(String styleNo) 
    {
        this.styleNo = styleNo;
    }

    public String getStyleNo() 
    {
        return styleNo;
    }

    public Integer getQuantity() {
        return quantity;
    }

    public void setQuantity(Integer quantity) {
        this.quantity = quantity;
    }

    public void setCategoryId(Long categoryId)
    {
        this.categoryId = categoryId;
    }

    public Long getCategoryId() 
    {
        return categoryId;
    }

    public String getCategoryName() {
        return categoryName;
    }

    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }

    public String getCategoryNameZh() {
        return categoryNameZh;
    }

    public void setCategoryNameZh(String categoryNameZh) {
        this.categoryNameZh = categoryNameZh;
    }

    public String getCategoryNameEn() {
        return categoryNameEn;
    }

    public void setCategoryNameEn(String categoryNameEn) {
        this.categoryNameEn = categoryNameEn;
    }

    public String getCategoryNameAr() {
        return categoryNameAr;
    }

    public void setCategoryNameAr(String categoryNameAr) {
        this.categoryNameAr = categoryNameAr;
    }

    public void setAttributes(Integer attributes)
    {
        this.attributes = attributes;
    }

    public Integer getAttributes()
    {
        return attributes;
    }

    public void setWeight(Double weight)
    {
        this.weight = weight;
    }

    public Double getWeight()
    {
        return weight;
    }

    public void setUnit(String unit) 
    {
        this.unit = unit;
    }

    public String getUnit() 
    {
        return unit;
    }

    public void setImageUrl(String imageUrl) 
    {
        this.imageUrl = imageUrl;
    }

    public String getImageUrl() 
    {
        return imageUrl;
    }

    public void setThumbnailUrl(String thumbnailUrl) 
    {
        this.thumbnailUrl = thumbnailUrl;
    }

    public String getThumbnailUrl() 
    {
        return thumbnailUrl;
    }

    public BigDecimal getCost() {
        return cost;
    }

    public void setCost(BigDecimal cost) {
        this.cost = cost;
    }

    public void setPurchasePrice(BigDecimal purchasePrice)
    {
        this.purchasePrice = purchasePrice;
    }

    public BigDecimal getPurchasePrice() 
    {
        return purchasePrice;
    }

    public void setSpec(String spec) 
    {
        this.spec = spec;
    }

    public String getSpec() 
    {
        return spec;
    }

    public void setCountryOfOrigin(String countryOfOrigin) 
    {
        this.countryOfOrigin = countryOfOrigin;
    }

    public String getCountryOfOrigin() 
    {
        return countryOfOrigin;
    }

    public void setSupplierId(Long supplierId) 
    {
        this.supplierId = supplierId;
    }

    public Long getSupplierId() 
    {
        return supplierId;
    }

    public void setSoldQty(Long soldQty) 
    {
        this.soldQty = soldQty;
    }

    public Long getSoldQty() 
    {
        return soldQty;
    }

    public void setStock(Long stock)
    {
        this.stock = stock;
    }

    public Long getStock()
    {
        return stock;
    }

    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("productId", getProductId())
            .append("productName", getProductName())
            .append("productCode", getProductCode())
            .append("styleNo", getStyleNo())
            .append("categoryId", getCategoryId())
            .append("attributes", getAttributes())
            .append("weight", getWeight())
            .append("unit", getUnit())
            .append("imageUrl", getImageUrl())
            .append("thumbnailUrl", getThumbnailUrl())
            .append("purchasePrice", getPurchasePrice())
            .append("spec", getSpec())
            .append("countryOfOrigin", getCountryOfOrigin())
            .append("supplierId", getSupplierId())
            .append("soldQty", getSoldQty())
            .append("stock", getStock())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
